using System.ComponentModel.DataAnnotations;
using SupplierCustomerManagement.Domain.Entities;

namespace SupplierCustomerManagement.Domain.ReportForms
{
    /// <summary>
    /// 羊只基础信息实体
    /// 代表系统中的羊只基本信息，包含羊只的耳号、品种、性别、年龄等基础信息
    /// </summary>
    public class Sheep : BaseEntity
    {
        /// <summary>
        /// 耳号（唯一标识）
        /// </summary>
        [Required]
        [StringLength(50)]
        public string EarTag { get; set; }

        /// <summary>
        /// 羊只名称
        /// </summary>
        [StringLength(100)]
        public string? SheepName { get; set; }

        /// <summary>
        /// 品种
        /// </summary>
        [Required]
        [StringLength(50)]
        public string Breed { get; set; }

        /// <summary>
        /// 性别（公/母）
        /// </summary>
        [Required]
        [StringLength(10)]
        public string Gender { get; set; }

        /// <summary>
        /// 出生日期
        /// </summary>
        public DateTime? BirthDate { get; set; }

        /// <summary>
        /// 年龄（月）
        /// </summary>
        public int? Age { get; set; }

        /// <summary>
        /// 羊只类型（种公/种母/幼羊/后备等）
        /// </summary>
        [Required]
        [StringLength(20)]
        public string SheepType { get; set; }

        /// <summary>
        /// 当前状态（存栏/淘汰/死亡/销售等）
        /// </summary>
        [Required]
        [StringLength(20)]
        public string CurrentStatus { get; set; }

        /// <summary>
        /// 健康状态
        /// </summary>
        [StringLength(20)]
        public string? HealthStatus { get; set; }

        /// <summary>
        /// 当前位置
        /// </summary>
        [StringLength(100)]
        public string? CurrentLocation { get; set; }

        /// <summary>
        /// 羊场ID
        /// </summary>
        [Required]
        public int FarmId { get; set; }
    }
}
